package com.gonsin.gview.model.dynamic;

import com.gonsin.gview.annotations.GContext;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 动态接口
 */
public interface DynamicView {


    /**
     * 在页面被访问的时候运行
     * 开发人员可以用此方法初始化一些数据，例如查数据库，避免每个方法中反复查询数据库。
     * @param context
     */
    default void beforeCreate(GContext context){}


    /**
     * 页面的标题
     */
    String title(GContext context);

    /**
     * 该页面所需要的参数
     */
    default List<String> props(){
        return new ArrayList<>();
    }


    /**
     * 后台预先设置的props
     */
    default Map<String, Object> serverProps(GContext context){ return new HashMap<>();}

}
